In modern operating systems, a kernel generally separates a virtual memory into a kernel space and a user space. This separation is to provide memory protection that protects system data and functionality from faults and from malicious behavior. If a malicious application is able to execute instructions in the kernel space, the malicious application may compromise the security of the system, thereby exposing the entire system to the malicious application. For example, a malicious application could install a rootkit, a virus, ransomware, a trojan, and so forth.